Computer based structured storage systems, such as computer file systems and database systems, have been remarkably successful at providing users with quick and facile access to enormous amounts of data. At the same time data management systems have been evolved for handling shared or concurrent access and update of data in a server by different clients. Typically in such a multi-user environment, data can be accessed freely but updating the data is usually tied to its “access time” or updating time in a server. For example, if one user has opened a document and is editing it, the document is locked for editing and other users can open the document but cannot update the document to the server. Another example is flight booking; the first travel agency to book a free seat obtains it; others obtain information that the amount of free seats has been decreased.
Evolvement of cloud computing has also introduced different documentsharing services. An example of such a service is Google Docs by means of which documents can be shared, opened, and edited by multiple users at the same time when the users are online so that each modification is instantly shown to all users, i.e. a user can collaborate in real-time with other users. Google Docs used to have an offline support but the feature was withdrawn; most probably there were problems with how to provide collaboration between online users and offline users. Thus, currently Google Docs requires real-time online connection for it to be used. Google has announced to deliver in 2011 an improved offline feature that takes advantage of advancements in modern browser technology, like HTML5. However, more detailed information about how modifications made offline are handled is not available at the time of the invention.
Yet a further example relates to a modeling application, in which a model is stored in a shared memory as a file comprising one or more data items. When a user retrieves the model from the shared memory, the user receives a copy of the file into his/her local memory. Each time the copy, or a modified copy, is stored back into the shared memory, the file in the shared memory is locked so that other users cannot access it, the current file on the shared memory is read by the modeling application into the user's computer so that updates to the file made by other users while the copy was only on the user's computer can be taken into account and possible conflicts can be resolved by the user. Then the modeling application updates the whole file to propagate modifications to all objects in the file, for example to update a drawing relating to a beam when a height of the beam has been modified, and stores the updated file in the shared memory. Only after the storing has ended is the lock released so that other users can access the file. One problem associated with the solution is that it uses the computing resources inefficiently by, for example, updating information, such as the drawing, which may be updated several times, for example because the height of the beam is modified several times, before the information is actually needed, i.e. before the drawing is used.